package com.enjoyor.soa.traffic.api.ubms.service.dubbo;

import com.enjoyor.soa.traffic.api.ubms.dto.BlockBlockRltDto;
import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * 维护路段-路段关系的Dubbo服务
 * @author yuankun
 * @version V1.0
 */
@SuppressWarnings("rawtypes")
public interface DubboBlockBlockRltService {
	
	/**
	 * 返回所有的路段-路段关系
	 * @return ResultPojo 所有路段-路段关系
	 */
	public ResultPojo getBlockBlockRlt();
	
	/**
	 * 分页返回所有的路段-路段关系
	 * @param page 分页对象
	 * @return ResultPojo 包含路段-路段关系的分页对象
	 */
	public ResultPojo getPageBlockBlockRlt(Page page);
	
	/**
	 * 分页返回所有的路段-路段关系
	 * @param page 分页对象
	 * @param rltId     路段-路段关系编码
	 * @param blockId   路段编码
	 * @param blockName 路段名称
	 * @param orderSeq  排序
	 * @return ResultPojo 包含路段-路段关系的分页对象
	 */
	public ResultPojo getPageBlockBlockRlt(Page page,String rltId, String blockId, String blockName, String orderSeq);
	
	/**
	 * 返回指定关系编码的路段-路段关系
	 * @param rltId 路段-路段关系编码
	 * @return ResultPojo 路段-路段关系
	 */
	public ResultPojo getBlockBlockRltById(String rltId);
	
	/**
	 * 返回指定的路段-路段关系
	 * @param rltId     路段-路段关系编码
	 * @param blockId   路段编码
	 * @param blockName 路段名称
	 * @param orderSeq  排序
	 * @return ResultPojo 路段-路段关系
	 */
	public ResultPojo getBlockBlockRlt(String rltId, String blockId, String blockName, String orderSeq);
	
	/**
	 * 返回指定路段编码的路段-路段关系
	 * @param blockId 路段编码
	 * @return ResultPojo 路段-路段关系
	 */
	public ResultPojo getBlockBlockRltByBlockId(String blockId);
	
	/**
	 * 返回关系编码的最大值，用于手工添加新的关系编码
	 * @return String 关系编码最大值
	 */
	public String  getMaxRltId();
	
	/**
	 * 添加一条路段-路段关系
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param blockBlockRltDto 路段-路段关系DTO
	 * @return ResultPojo 添加结果
	 */
	public ResultPojo addBlockBlockRlt(String token, BlockBlockRltDto blockBlockRltDto);
	
	/**
	 * 修改一条路段-路段关系
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param blockBlockRltDto 路段-路段关系DTO
	 * @return ResultPojo 修改结果
	 */
	public ResultPojo editBlockBlockRlt(String token, BlockBlockRltDto blockBlockRltDto);
	
	/**
	 * 删除指定编码的路段-路段关系
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param rltId 路段-路段关系编码
	 * @return ResultPojo 删除结果
	 */
	public ResultPojo removeBlockBlockRlt(String token, String rltId);
}
